/*
 * @Author: dagu
 * @Description: 剪贴板工具函数
 */

const { clipboard } = window.require('electron');

/**
 * 从剪贴板读取图片
 * @returns 图片的 base64 字符串或 null
 */
export const getImageFromClipboard = (): string | null => {
  try {
    const image = clipboard.readImage();
    if (image.isEmpty()) {
      return null;
    }
    return `data:image/png;base64,${image.toDataURL()}`;
  } catch (error) {
    console.error('读取剪贴板图片失败:', error);
    return null;
  }
};

/**
 * 将图片写入剪贴板
 * @param imageDataUrl 图片的 base64 字符串
 * @returns 是否成功
 */
export const writeImageToClipboard = (imageDataUrl: string): boolean => {
  try {
    const base64Data = imageDataUrl.replace(/^data:image\/\w+;base64,/, '');
    const buffer = Buffer.from(base64Data, 'base64');
    const image = clipboard.readImage().createFromBuffer(buffer);
    clipboard.writeImage(image);
    return true;
  } catch (error) {
    console.error('写入剪贴板图片失败:', error);
    return false;
  }
};
